昨天說到Hash可以做完整性驗證,今天來說可以做到驗證源頭的:
訊息認證碼的流程跟Hash差不多,來看以下的步驟:
有2個人A和B,B要傳訊息給A,
1.B把訊息M 先Hash後使用對稱式加密(AES)即可得到MAC,其中對稱式加密的金鑰可以用Diffie-Hellman key exchange的SK,再把訊息M 串接 MAC 傳給A。
2.A收到訊息M 跟 MAC後,一樣先把訊息M 做Hash之後使用對稱式加密(AES)可得到MAC,金鑰也是用Diffie-Hellman key exchange的SK,最後比對B傳的MAC 跟自己算出來的MAC有沒有一樣。
這樣流程就結束了。
還有一個是HAMC,多了一個H表示的是Hash,也就是把密鑰包在Hash裡面。
像是H (K,(K,M )),K是金鑰,M是訊息。
這個在SSL\TLS會使用這種方法。
說到TLS,明天就進入常見的攻擊手段,寫到這裡的時候發現還有想寫的沒寫到...
感覺在寫密碼系統的時候太多了。